package com.hys.ultrasound.data.http;


import com.hys.ultrasound.data.entity.AppVersion;
import com.hys.ultrasound.data.entity.Goods;
import com.hys.ultrasound.data.entity.Token;
import com.hys.ultrasound.data.entity.UserInfo;
import com.lpjeremy.libmodule.http.model.BaseResult;

import java.util.List;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * @desc:接口API
 * @date:2018/11/19 15:29
 * @auther:lp
 * @version:1.1.6
 */
public interface ServerApi {

    /**
     * Get请求返回一个对象的示例
     *
     * @param userName
     * @param password
     * @return
     */
    @GET(HttpConfig.LOGIN)
    Observable<BaseResult<UserInfo>> login(@Query("userCode") String userName, @Query("password") String password);

    /**
     * 刷新token
     * @param token
     * @return
     */
    @POST(HttpConfig.REFRESHTOKEN)
    Observable<BaseResult<Token>> refreshToken(@Query("refreshToken") String token);
    /**
     * 添加登录记录
     *
     * @param appVersion
     * @return
     */
    @POST(HttpConfig.CHECKAPPUPDATE)
    Observable<BaseResult<AppVersion>> checkAppUpdate(@Query("appVersion") String appVersion);

    /**
     * 根据拣货单号获取拣货详情
     *
     * @param orderNum
     * @return
     */
    @GET(HttpConfig.GETJHDLIST)
    Observable<BaseResult<List<Goods>>> getJhdList(@Query("code") String orderNum);
    /**
     * 获取批号
     *
     * @return
     */
    @GET(HttpConfig.GETPIHAO)
    Observable<BaseResult<String>> getPiHao(@Query("spid") String spid,@Query("tiaoma") String tiaoma);


    /**
     * 保存数据
     * @param goodsList
     * @return
     */
    @POST(HttpConfig.INSERT)
    Observable<BaseResult<String>> insert(@Body List<Goods>  goodsList);




    @GET(HttpConfig.VALIDATEPASSWORD)
    Observable<BaseResult<String>> validatePassword(@Query("password") String password);

//    /***
//     * 获取仓库信息
//     * @param key
//     * @return
//     */
//    @GET(HttpConfig.GETCKINFO)
//    Observable<BaseResult<List<WareHouse>>> getWareHouse(@Query("ckInfo") String key);
//
//    /***
//     * 根据条码获取品种信息
//     * @param code
//     * @return
//     */
//    @GET(HttpConfig.GETPRODINFO)
//    Observable<BaseResult<List<PGoods>>> getGoodsInfoByCode(@Query("barCode") String code);
//
//    /**
//     * 保存数据
//     * @param goodsList
//     * @return
//     */
//    @POST(HttpConfig.SAVEPDD)
//    Observable<BaseResult<String>> savePdd(@Body List<PGoods>  goodsList);


}
